package fr.unice.servlet;


import java.io.*;
import java.util.Iterator;
import java.util.List;
import org.jdom.*;
import org.jdom.input.SAXBuilder;
import org.jdom.output.Format;
import org.jdom.output.XMLOutputter;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author ED
 */
public class lectureXml {
   static org.jdom.Document document;
   static Element racine;

    public lectureXml() {
    }

    public static Document getDocument() {
        return document;
    }

    public static Element getRacine() {
        return racine;
    }


    public void ouverture(String fichier){
            //On crée une instance de SAXBuilder
      SAXBuilder sxb = new SAXBuilder();
      try
      {
         //On crée un nouveau document JDOM avec en argument le fichier XML
         //Le parsing est terminé ;)
         document = sxb.build(new File(fichier));
      }
      catch(Exception e){}

      //On initialise un nouvel élément racine avec l'élément racine du document.
      racine = document.getRootElement();

    }

    public static void setDocument(Document document) {
        lectureXml.document = document;
    }

    public static void setRacine(Element racine) {
        lectureXml.racine = racine;
    }

     static void afficheALL()
        {
            //On crée une List contenant tous les noeuds "etudiant" de l'Element racine
            List listCours = racine.getChildren("libelle");
            System.out.println("ooo");
            //On crée un Iterator sur notre liste
            Iterator i =  listCours.iterator();
            while(i.hasNext())
            {
            //On recrée l'Element courant à chaque tour de boucle afin de
            //pouvoir utiliser les méthodes propres aux Element comme :
            //selectionner un noeud fils, modifier du texte, etc...
            Element courant = (Element)i.next();
            System.out.println("l'attribut nom : "+courant.getAttributeValue("nom"));


           List jP=courant.getChildren();

           Iterator j =  jP.iterator();
           while(j.hasNext())
            {
                Element courant2 = (Element)j.next();
                if (courant2.getChildren().size()>0){
                    System.out.println("il y'a encore des fils");
                }else{
                    System.out.println("fin du noeud");
                }
                System.out.println(" courant 2 : "+courant2.getName()+" -- "+courant2.getValue());
            }

            //On affiche le nom de l'element courant
            System.out.println(" -- test : "+ courant.getChild("DureeTP").getText());
            }

        }


     static void enregistre(String fichier)
{
   try
   {
      //On utilise ici un affichage classique avec getPrettyFormat()
      XMLOutputter sortie = new XMLOutputter(Format.getPrettyFormat());
      //Remarquez qu'il suffit simplement de créer une instance de FileOutputStream
      //avec en argument le nom du fichier pour effectuer la sérialisation.
      sortie.output(document, new FileOutputStream(fichier));
   }
   catch (java.io.IOException e){}
}

         public static void main(String[] args)
          {
             lectureXml lx=new lectureXml();
             lx.ouverture("C:/Users/ED/Desktop/TPWEB2/build/web/nouveau.xml");
             lectureXml.afficheALL();
         }
}
